home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / taropyon / guilib3 / inc / menu.h < prev    next >
C/C++ Source or Header  |  1993-11-30  |  6KB  |  200 lines

  1. /*    :*****************************************************************
  2.     :    "menu.h"    :    system“Pride”メニュー・ライブラリ
  3.     :*****************************************************************
  4. */
  5. #ifndef    _MENU_H
  6. #define    _MENU_H
  7.  
  8. #ifndef    _EVENT_H
  9. #    include    <event.h>
  10. #endif
  11. #ifndef    _DIALOG_H
  12. #    include    <dialog.h>
  13. #endif
  14. #ifndef    _MOUSE_H
  15. #    include    <mouse.h>
  16. #endif
  17.  
  18. extern    USHORT    PfKeyTbl[];        /*    "pfkeytbl.c"    */
  19. extern    USHORT    KeyAdr_table[];    /*    "keyadr.c"        */
  20. extern    UINT    tenKeyAdr( UINT ec );
  21.  
  22. #define    SETPOS_MOSC        (-1)    /* 座標指定マウスカーソルを中心に    */
  23. #define    SETPOS_MOS        (-2)    /* 座標指定マウスカーソル位置        */
  24. #define    SETPOS_CENTER    (-3)    /* 座標指定画面中央                    */
  25.  
  26. /*    "menbtn.c"    ----------------------------------------------------*/
  27. typedef    struct
  28. {
  29.     EVTSETMOS_T    evtMos;
  30.     SHORT        fntX, fntY;
  31.     COLOR        strCol, btnCol, hilCol, shaCol;
  32. } MNUSETBTN_T;
  33. extern    int        MNU_evtSetBtn( EVT_T *evt, MNUSETBTN_T *para, CONST char *form, ... );
  34.  
  35. /*    "menbtn16.c"    ------------------------------------------------*/
  36. int
  37. SetMsgBtn( EVT_T *evt, int evt_no, int no, int attr, int btn,
  38.            int x0, int y0, int xs, int ys, int (*func)(int,EVTSBJ_T *), void *ptr,
  39.            COLOR strCol, COLOR btnCol, COLOR hilCol, COLOR shaCol, CONST char *form, ... );
  40.  
  41. /*    "menbtn12.c"    ------------------------------------------------*/
  42. int
  43. SetMsgBtn12( EVT_T *evt, int evt_no, int no, int attr, int btn,
  44.            int x0, int y0, int xs, int ys, int (*func)(int,EVTSBJ_T *), void *ptr,
  45.            COLOR strCol, COLOR btnCol, COLOR hilCol, COLOR shaCol, CONST char *form, ... );
  46.  
  47.  
  48. /*    "menubar.c"    ----------------------------------------------------*/
  49. typedef struct
  50. {    int            no;            /* イベントNo    */
  51.     USHORT        ch, ec;
  52.     int            (*func)(int,EVTSBJ_T *);
  53.     void        *ptr;
  54.     CONST char    *msg;
  55. } MENUBAR;
  56.  
  57. EVT_T    *SetMenuBar (
  58.     EVT_T *evt, int x0, int y0,
  59.     COLOR strCol, COLOR btnCol, COLOR hilCol, COLOR shaCol, int n, MENUBAR *mb
  60. );
  61.  
  62. /*    "menusel1.c"    ------------------------------------------------*/
  63. #define    MNSL1_BLK    (0)
  64. #define    MNSL1_MSG    (1)
  65. #define    MNSL1_NOR    (2)
  66. #define    MNSL1_DIG    (3)
  67. #define    MNSL1_STR    (4)
  68. #define    MNSL1_SEL    (5)
  69. #define    MNSL1_IGN    (0x80)    /* 実行禁止    */
  70.  
  71. typedef    struct
  72. {    UCHAR    attr;        /* 属性                            */
  73.     char    key;        /* ショートカットキー            */
  74.     char    *msg;        /* メッセージ                    */
  75.     void    *para;        /* メッセージパラメータポインタ    */
  76.     int        no;            /* コマンドNo                    */
  77.     int        (*func)();    /* 実行関数                        */
  78.     void    *ptr;        /* 汎用ポインタ                    */
  79. } MENUSL1_OBJ;
  80.  
  81.  
  82. #define    MNSL1_EXIT    (1)    /* EXIT ボタン付    */
  83. #define    MNSL1_LOOP    (2)    /* LOOP フラグ        */
  84.  
  85. typedef struct
  86. {    DLGBOX        fr;
  87.     int            attr;
  88.     int            n;
  89.     int            sel;
  90.     char        *title;
  91.     MENUSL1_OBJ    *obj;
  92.     EVT_WORK    *evt;
  93. } MENUSL1;
  94.  
  95. int        MENU_sel1_move( int evtNo, EVTSBJ_T *sbj);
  96. void    MENU_sel1_draw( DLG *dlg );
  97. int        MENU_sel1( MENUSL1 *mn, int attr, int x, int y, CONST char *title );
  98.  
  99. /*    "menusub1.c"    ------------------------------------------------*/
  100. void    MENU_guideline( int x0, int y0, int xs, int ys, int ctil, int cbox );
  101. void    MENU_dspTitle( int x0, int y0, int xs, int ys, int ctil, int cbox, int cstr, CONST char *form, ... );
  102.  
  103. /*    "menuwait.c"    ------------------------------------------------*/
  104. int        MENU_wait( UINT sec );
  105.  
  106. /*    "selbtn.c"    ----------------------------------------------------*/
  107. typedef    struct
  108. {    UINT    attr;        /* 属性                            */
  109.     char    *msg;        /* ボタンメッセージ                */
  110.     USHORT    ch;            /* 対応キーコード                */
  111.     USHORT    ec;            /* 対応キーアドレス                */
  112.     int        evtNo;        /* リターンイベントNO            */
  113.     int        (*func)();    /* 実行関数                        */
  114.     void    *ptr;        /* 汎用ポインタ                    */
  115. } SELBTNOBJ_T;
  116.  
  117. int        MENU_selectBtn(
  118.     int x0, int y0, COLOR strCol, COLOR bacCol, COLOR boxCol, int attr,
  119.     int btnNum, SELBTNOBJ_T *btnObj, CONST char *msg, ... );
  120. int        MENU_sure (
  121.     int x0, int y0, COLOR strCol, COLOR bacCol, COLOR boxCol, int attr,
  122.     CONST char *msg, ... );
  123.  
  124. #define    MENU_SURE_OK        (1)
  125. #define    SELBTN_ATT_LEFT        (0)    /* 左詰め表示                */
  126. #define    SELBTN_ATT_CENTER    (1)    /* メッセージのセンタリング    */
  127.  
  128. /*    "mnu010.c"        ------------------------------------------------*/
  129. #define    MNU_BLK    (0)
  130. #define    MNU_MSG    (1)
  131. #define    MNU_NOR    (2)
  132. #define    MNU_DIG    (3)
  133. #define    MNU_STR    (4)
  134. #define    MNU_SEL    (5)
  135. #define    MNU_IGN    (0x80)    /* 実行禁止    */
  136.  
  137. typedef    struct
  138. {    USHORT        attr;        /* 属性                            */
  139.     SHORT        key;        /* ショートカットキー            */
  140.     CONST char    *msg;        /* メッセージ                    */
  141.     void        *para;        /* メッセージパラメータポインタ    */
  142.     int            no;            /* コマンドNo                    */
  143.     int            (*func)();    /* 実行関数                        */
  144.     void        *ptr;        /* 汎用ポインタ                    */
  145. } MNUOBJ_T;
  146.  
  147. #define    MNUATT_EXIT    (1)        /* EXIT ボタン付    */
  148. #define    MNUATT_LOOP    (2)        /* LOOP フラグ        */
  149.  
  150. typedef struct
  151. {
  152.     DLG_T        *dlg;
  153.     MOSTKP        *mosTk;
  154.     EVT_T        *evt;
  155.     int            attr;
  156.     int            n;
  157.     int            sel;
  158.     char        *title;
  159.     MNUOBJ_T    *obj;
  160.     COLOR        colTbl[8];
  161. } MNU_T;
  162.  
  163. int        MNU_start( MNU_T *mnu );
  164. MNU_T    *MNU_open(int x0, int y0, int attr, int n, MNUOBJ_T *obj, CONST char *title, ... );
  165. int        MNU_close( MNU_T *mnu );
  166.  
  167. /*    "syslin.c"    ----------------------------------------------------*/
  168. typedef    struct _sylpf_t            /* ファンクションキー設定構造体    */
  169. {    int        shift;                /* シフトモード        */
  170.     char    msg[10];            /* メッセージ        */
  171.     int        evtNo;
  172.     int        (*func)();
  173.     void    *ptr;
  174. } SYLPF_T;
  175.  
  176. typedef    struct _syl_t    
  177. {    struct _syl_t    *prev;
  178.     int                page;        /* 書き込みページ                */
  179.     int                mode;        /* 表示モード                    */
  180.     GBLK            *gbuf;        /* VRAM退避用バッファ            */
  181.     SYLPF_T            *pfKey[12*4];
  182.     EVT_T            *evtKey;
  183.     EVT_T            *evtMos;
  184. } SYL_T;
  185.  
  186. #define    SYLKEY_SHIFT_OFF    (0)
  187. #define    SYLKEY_SHIFT        (1)
  188. #define    SYLKEY_CTRL            (2)
  189. #define    SYLKEY_SHIFT_CTRL    (3)
  190.  
  191. void    SYL_clear(void);
  192. void    SYL_puts( COLOR strCol, char *msg, ... );
  193. SYL_T    *SYL_open(EVT_T *basEvt);
  194. void    SYL_close( SYL_T *syl );
  195. void    SYL_dspPf( SYL_T *syl, int shift, int pfno );
  196. int        SYL_getkey(SYL_T *syl, UINT *ec );
  197. int        SYL_setPfkey( SYL_T *syl, int pfno, int shift, char *msg, int evtNo, int (*func)(), void *ptr );
  198.  
  199. #endif
  200.